home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
basmenu.arc
/
LOADER.BAS
next >
Wrap
BASIC Source File
|
1987-05-07
|
2KB
|
41 lines
1000 '***********************************************************************
1010 '**** ****
1020 '**** Basic 'LOADER' Program ****
1030 '**** ****
1040 '***********************************************************************
1050 KEY OFF
1060 DEF SEG
1070 SBT$=STRING$(159,32)
1080 SUB%=VARPTR(SBT$)
1090 DIRECT=PEEK(SUB%+1)+PEEK(SUB%+2)*256
1100 BLOAD"LOADER.MCH",DIRECT
1110 DIM DIRLST$(111),FIL$(111):FCB$=STRING$(33,32):DTA$=STRING$(33,32):COUNT%=0 :F$=STRING$(12,32)
1120 FOR L=0 TO 111:DIRLST$(L)=F$:NEXT
1130 CLS:LOCATE 1,20
1140 COLOR 0,7:PRINT"* * * Basic Program 'LOADER' * * *":COLOR 7,0
1150 LOCATE 3,10,1
1160 PRINT"From which drive do you wish to load (A B C D): ";
1170 GOSUB 1260:DRV$=KY$
1180 HIT%=INSTR("ABCD",DRV$)
1190 IF HIT%=0 THEN SOUND 50,7:GOTO 1150 ELSE PRINT DRV$
1200 LOCATE ,,0
1210 CALL DIRECT(DRV$,FCB$,DTA$,DIRLST$(0),COUNT%)
1220 LOCATE 5,1
1230 FOR LOOP%=0 TO COUNT%-1:IF RIGHT$(DIRLST$(LOOP%),3)="BAS" THEN NUM=NUM+1:FIL$(NUM)=DIRLST$(LOOP%):PRINT FIL$(NUM);SPC(4);
1240 NEXT:PRINT
1250 GOTO 1300
1260 KY$=INKEY$:IF KY$="" THEN 1260
1270 IF KY$<CHR$(97) OR KY$>CHR$(122) THEN 1290
1280 KY$=CHR$(ASC(KY$)-32)
1290 RETURN
1300 R=5:C=1:N=1
1310 LOCATE R,C:COLOR 0,7:PRINT FIL$(N):COLOR 7,0
1320 MV$=INKEY$:IF MV$="" THEN 1320 ELSE MV=ASC(RIGHT$(MV$,1))
1330 IF MV=80 AND N+5<=NUM THEN LOCATE R,C:PRINT FIL$(N):N=N+5:R=R+1:GOTO 1310
1340 IF MV=72 AND N-5>0 THEN LOCATE R,C:PRINT FIL$(N):N=N-5:R=R-1:GOTO 1310
1350 IF MV=77 AND C+16<80 AND INT(N/5)*5+INT((C+32)/16)<=NUM THEN LOCATE R,C:PRINT FIL$(N):N=N+1:C=C+16:GOTO 1310
1360 IF MV=75 AND C-16>0 AND INT(N/5)*5+INT((C-32)/16)>-2 THEN LOCATE R,C:PRINT FIL$(N):N=N-1:C=C-16:GOTO 1310
1370 IF MV=13 THEN LOCATE 25,1:COLOR 0,7:PRINT "LOADING ";DRV$;":";FIL$(N);:COLOR 7,0:RUN DRV$+":"+FIL$(N)
1380 IF MV=71 THEN LOCATE R,C:PRINT FIL$(N):GOTO 1300
1390 GOTO 1320